package com.demarc.pesquisas.infraestrutura.mensagem;

import java.text.MessageFormat;
import java.util.ResourceBundle;

public final class MensagemUtil {

	private static final ResourceBundle BUNDLE = ResourceBundle.getBundle(
			"mensagens", new UTF8Control());

	private static ResourceBundle getBundle() {
		return BUNDLE;
	}

	public static String get(String chave, Object... parametros) {

		String mensagem = getBundle().getString(chave);
		if (existeParametros(parametros)) {
			String[] arrayParams = new String[parametros.length];
			for (int i = 0; i < parametros.length; i++) {
				try {
					arrayParams[i] = getBundle().getString(
							parametros[i].toString());
				} catch (Throwable e) {
					arrayParams[i] = parametros[i].toString();
				}
			}
			mensagem = MessageFormat.format(mensagem, arrayParams);
		}
		return mensagem;
	}

	public static String get(Mensagem mensagem) {
		return get(mensagem.getChave(), mensagem.getParametros().toArray());
	}

	private static boolean existeParametros(Object... parametros) {
		return parametros != null && parametros.length > 0;
	}
}